package cn.itcast.nems.studentrecord.service.studentrecord;

import cn.itcast.nems.order.dto.PaymentFlowDTO;
import cn.itcast.nems.studentrecord.dto.change.StudentRecordChangeCompleteResultDTO;
import cn.itcast.nems.studentrecord.dto.change.StudentRecordChangeResultDTO;
import cn.itcast.nems.studentrecord.dto.change.StudentRecordJournalDTO;
import cn.itcast.nems.studentrecord.dto.change.StudentRecordTransferDTO;

import java.util.List;

/**
 * 转移、转班、休学、转待定班相关逻辑
 */
public interface StudentRecordTransferService {

    /**
     * 处理转班
     *
     * @param studentRecordTransfer 参数对象
     * @return 转入班的学籍ID
     */
    StudentRecordChangeResultDTO transfer(StudentRecordTransferDTO studentRecordTransfer);


    /**
     * 转班完成（如果转入班需要交费，则在缴费完成后调用（跨学科转班）；否则转班流程审批通过时调用(同学科转班)）
     *
     * @param studentRecordJournal 参数对象
     */
    StudentRecordChangeCompleteResultDTO transferComplete(StudentRecordJournalDTO studentRecordJournal);

    /**
     * 给订单添加流水
     *
     * @param flows
     */
    void addOrderFlow(List<PaymentFlowDTO> flows);
}
